package com.shop.controller;

import com.alipay.api.internal.util.AlipaySignature;
import com.shop.service.AlipayService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.shop.config.AlipayConfig;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.Map;

@RestController
@RequestMapping("/alipay")
public class AlipayController {
    @Resource
    private AlipayService alipayService;

    @PostMapping("/pay")
    public String createPayOrder(String orderNo, Double amount, String subject) {
        String res=alipayService.createPayment(orderNo,amount,subject);
        System.out.println(res);
        return alipayService.createPayment(orderNo, amount, subject);
    }
//    @PostMapping("/notify")
//    public String handleNotify(@RequestParam Map<String, String> params) throws Exception {
//        // 打印所有回调参数（调试用）
//        for (Map.Entry<String, String> entry : params.entrySet()) {
//            System.out.println(entry.getKey() + ": " + entry.getValue());
//        }
//
//        // 验签（必须验证签名，防止伪造请求）
//        boolean signVerified = AlipaySignature.rsaCheckV1(
//                params,
//                AlipayConfig.ALIPAY_PUBLIC_KEY,
//                AlipayConfig.CHARSET,
//                "RSA2");
//
//        if (signVerified) {
//            String tradeStatus = params.get("trade_status");
//            String outTradeNo = params.get("out_trade_no");
//
//            if ("TRADE_SUCCESS".equals(tradeStatus)) {
//                // 支付成功，可以更新数据库订单状态或记录日志
//                System.out.println("✅ 订单 [" + outTradeNo + "] 支付成功！");
//                return "success";
//            }
//        }
//
//        return "failure";
//    }
}